<template>
    <div>
        <Title :title="title"></Title>
        <div ref="right2" style="height: 150px;padding-top: 25px;"></div>
    </div>
</template>
<script>
// 2.引入折线图表函数
import { Line } from '@antv/g2plot';
// 引入get请求
import { get } from '@/utils/request'
// 引入moment 处理时间 
import moment from 'moment'
export default {
    // 存放vue变量
    data() {
        return {
            title: '实时湿度曲线',
            Data: []
        }
    },
    methods: {
        // 封装加载图表方法
        loadLine() {
            const line = new Line(this.$refs.right2, {
                data: this.Data,
                padding: 'auto',
                xField: 'insert_time',
                yField: 'humidity',
                xAxis: {
                    label: {
                        style: {
                            fill: 'white'
                        }
                    },
                    tickCount: 5,
                },
                yAxis: {
                    label: {
                        style: {
                            fill: 'white'
                        },
                        formatter: (v) => `${v}%`
                    },
                    min: 0,
                    max: 100
                }
            });

            line.render();
        },
        // 请求后端数据 
        async getTempData() {
            let res = await get('/dashboard/pageQueryTodayData', { page: 1, pageSize: 100 });
            console.log(res, '获取响应');
            // 声明一个临时数组存放处理好的数据
            let temp = [];
            res.data.list.forEach((item, index) => {
                // 格式化时间
                item.insert_time = moment(item.insert_time).format('HH:mm');
                // 确保湿度数据是数字格式
                item.humidity = parseFloat(item.humidity) || 0;
                // 每隔10个数据取一个
                if (index % 10 === 0) {
                    temp.push(item);
                }
            });
            console.log('处理后的数据:', temp);
            console.log('湿度数值范围:', temp.map(item => item.humidity));
            this.Data = temp;
        }
    },
    // 生命周期 vue实例与模板绑定完成 此时可以获取dom元素
    async mounted() {
        // 隐式创建微任务
        await this.getTempData();
        this.loadLine();
    }
}
</script>
<style scoped></style>